Apache HTTP Client হল একটি শক্তিশালী লাইব্রেরি যা Java প্রোগ্রামগুলিতে HTTP রিকুয়েস্ট এবং রেসপন্স পরিচালনা করতে সহায়তা করে। এটি Apache HttpComponents প্রকল্পের অংশ এবং RESTful API বা ওয়েব সার্ভিসের সাথে ইন্টারঅ্যাক্ট করার জন্য অত্যন্ত উপযোগী।
এই পোস্টে আমরা Apache HTTP Client এর ইন্সটলেশন এবং কনফিগারেশন প্রক্রিয়া নিয়ে আলোচনা করব।
Apache HTTP Client ব্যবহার করতে হলে, প্রথমে আপনাকে আপনার প্রজেক্টে লাইব্রেরি যোগ করতে হবে। আপনি যদি Maven বা Gradle ব্যবহার করেন, তবে এটি সহজেই ডিপেনডেন্সি হিসেবে যুক্ত করা যেতে পারে।
আপনার প্রজেক্টের pom.xml
ফাইলে Apache HTTP Client এর ডিপেনডেন্সি যোগ করতে হবে।
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version> <!-- Use the latest version -->
</dependency>
</dependencies>
এটি Maven রেপোজিটরি থেকে Apache HTTP Client লাইব্রেরিটি ডাউনলোড করবে।
আপনি যদি Gradle ব্যবহার করেন, তবে build.gradle
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:
dependencies {
implementation 'org.apache.httpcomponents:httpclient:4.5.13' // Use the latest version
}
এটি Gradle রেপোজিটরি থেকে Apache HTTP Client লাইব্রেরি ডাউনলোড করবে।
একবার আপনি Apache HTTP Client লাইব্রেরি ইন্সটল করার পর, এর কনফিগারেশন করতে পারেন বিভিন্ন প্রয়োজন অনুযায়ী। নিচে আমরা সাধারণ কনফিগারেশন পদ্ধতি এবং সেটিংস দেখব।
HttpClient তৈরি করতে আপনাকে একটি HttpClientBuilder ব্যবহার করতে হবে। এটি কাস্টম কনফিগারেশন যেমন টাম্বার আউটপুট, রিকুয়েস্ট টাইমআউট, কানেকশন পুলিং ইত্যাদি সেটআপ করতে সাহায্য করে।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
import java.net.Proxy;
import java.net.InetSocketAddress;
public class HttpClientConfigExample {
public static void main(String[] args) {
// Request Configuration
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // কানেকশন টাইমআউট
.setSocketTimeout(5000) // সোকেট টাইমআউট
.build();
// Connection Pooling (Performance Optimization)
PoolingHttpClientConnectionManager poolingConnManager = new PoolingHttpClientConnectionManager();
poolingConnManager.setMaxTotal(200); // সর্বোচ্চ কানেকশন সংখ্যা
poolingConnManager.setDefaultMaxPerRoute(20); // প্রতি রাউটের জন্য সর্বোচ্চ কানেকশন সংখ্যা
// HttpClient তৈরি
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig) // রিকুয়েস্ট কনফিগারেশন যোগ করা
.setConnectionManager(poolingConnManager) // কানেকশন পুলিং সেট করা
.build();
// HttpClient ব্যবহার করে HTTP রিকুয়েস্ট পাঠানো যাবে
System.out.println("HttpClient কনফিগারেশন সফল!");
}
}
RequestConfig
: এটি রিকুয়েস্ট সম্পর্কিত কনফিগারেশন যেমন কানেকশন টাইমআউট এবং সোকেট টাইমআউট সেট করে।PoolingHttpClientConnectionManager
: এটি HTTP কানেকশন পুল ম্যানেজমেন্টের জন্য ব্যবহৃত হয়, যা একাধিক HTTP রিকুয়েস্টের জন্য কানেকশন পুনরায় ব্যবহার করতে সহায়তা করে এবং পারফরম্যান্স উন্নত করে।HttpClients.custom()
: এটি কাস্টম কনফিগারেশন সহ HttpClient তৈরি করতে ব্যবহৃত হয়।আপনি যদি একটি প্রোক্সি সার্ভারের মাধ্যমে HTTP রিকুয়েস্ট পাঠাতে চান, তাহলে আপনাকে HttpClient এ প্রোক্সি কনফিগারেশন করতে হবে।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import java.net.Proxy;
import java.net.InetSocketAddress;
public class ProxyHttpClientConfig {
public static void main(String[] args) {
// Request Configuration with Proxy
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // কানেকশন টাইমআউট
.setSocketTimeout(5000) // সোকেট টাইমআউট
.setProxy(new HttpHost("proxy.example.com", 8080)) // Proxy সেট করা
.build();
// HttpClient তৈরি
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build();
System.out.println("Proxy সহ HttpClient কনফিগারেশন সফল!");
}
}
setProxy()
: এটি প্রোক্সি সার্ভারের ঠিকানা এবং পোর্ট দিয়ে কনফিগারেশন সেট করে।কিছু ক্ষেত্রে, আপনি যদি নির্দিষ্ট HTTP রিকুয়েস্টে ত্রুটি ঘটলে পুনরায় চেষ্টা করতে চান, তাহলে আপনি HttpRequestRetryHandler ব্যবহার করতে পারেন।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
public class RetryHttpClientConfig {
public static void main(String[] args) {
// Request Configuration with Retry Logic
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.build();
// Retry Handler
DefaultHttpRequestRetryHandler retryHandler = new DefaultHttpRequestRetryHandler(3, true); // 3 retries
// HttpClient তৈরি
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(retryHandler)
.build();
System.out.println("Retry logic সহ HttpClient কনফিগারেশন সফল!");
}
}
DefaultHttpRequestRetryHandler
: এটি HTTP রিকুয়েস্টের জন্য রিট্রাই লজিক সেট করে, এখানে ৩ বার রিট্রাই করার জন্য কনফিগার করা হয়েছে।আপনি যদি HTTPS রিকুয়েস্ট করতে চান এবং SSL/TLS কনফিগারেশন করতে চান, তাহলে আপনাকে SSLContext ব্যবহার করতে হবে।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;
import java.security.KeyStore;
public class SSLHttpClientConfig {
public static void main(String[] args) throws Exception {
// SSL Context তৈরি করা
SSLContext sslContext = SSLContext.getInstance("TLS");
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init((KeyStore) null);
sslContext.init(null, trustManagerFactory.getTrustManagers(), new java.security.SecureRandom());
// HttpClient with SSL Configuration
CloseableHttpClient httpClient = HttpClients.custom()
.setSslcontext(sslContext)
.build();
System.out.println("SSL কনফিগারেশন সহ HttpClient কনফিগারেশন সফল!");
}
}
Apache HTTP Client একটি অত্যন্ত শক্তিশালী লাইব্রেরি যা Java প্রোগ্রামে HTTP রিকুয়েস্ট এবং রেসপন্স ব্যবস্থাপনা করতে সহায়তা করে। এর কনফিগারেশন অনেক নমনীয় এবং এটি ব্যবহারকারীর প্রয়োজন অনুসারে কাস্টমাইজ করা যায়, যেমন RequestConfig, Connection Pooling, Proxy Settings, Retry Logic, এবং SSL Configuration। আপনি যদি একটি মডার্ন, পারফরম্যান্ট HTTP ক্লায়েন্ট তৈরি করতে চান, তবে Apache HTTP Client আপনার জন্য একটি আদর্শ পছন্দ হতে পারে।
Apache HTTP Client হলো একটি শক্তিশালী এবং ব্যাপকভাবে ব্যবহৃত Java লাইব্রেরি যা HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডলিং এর জন্য ব্যবহৃত হয়। আপনি যদি Apache HTTP Client আপনার Java প্রোজেক্টে ব্যবহার করতে চান, তাহলে প্রথমে আপনাকে এটি ডাউনলোড করতে হবে অথবা Maven অথবা Gradle এর মাধ্যমে ডিপেন্ডেন্সি যুক্ত করতে হবে।
নিচে Apache HTTP Client লাইব্রেরি ডাউনলোড এবং Maven ও Gradle ডিপেন্ডেন্সি যোগ করার পদক্ষেপ বিস্তারিতভাবে আলোচনা করা হয়েছে।
আপনি Apache HTTP Client লাইব্রেরি সরাসরি ডাউনলোড করতে পারেন। এটি Apache HttpComponents প্রকল্পের একটি অংশ, এবং এর সর্বশেষ ভার্সন Apache HttpClient ডাউনলোড পেজ থেকে পাওয়া যাবে।
ডাউনলোড করা হলে আপনি httpclient-x.x.x.jar ফাইলটি আপনার প্রোজেক্টের lib
ফোল্ডারে রাখতে পারেন, এবং সেখান থেকে ম্যানুয়ালি ইম্পোর্ট করতে পারবেন।
আপনি যদি Maven ব্যবহার করেন, তাহলে Apache HTTP Client লাইব্রেরি অন্তর্ভুক্ত করার জন্য আপনাকে শুধুমাত্র pom.xml ফাইলে ডিপেন্ডেন্সি যোগ করতে হবে।
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version> <!-- সর্বশেষ ভার্সন চেক করুন -->
</dependency>
</dependencies>
এখানে:
org.apache.httpcomponents
এটি গ্রুপ আইডি যা অ্যাপাচি HTTP ক্লায়েন্ট লাইব্রেরির পরিচয়।httpclient
এটি লাইব্রেরির নাম।আপনার pom.xml ফাইলে এই ডিপেন্ডেন্সি যুক্ত করার পর, Maven স্বয়ংক্রিয়ভাবে লাইব্রেরিটি ডাউনলোড এবং আপনার প্রোজেক্টে যোগ করে নিবে।
যদি আপনি Gradle ব্যবহার করেন, তাহলে build.gradle ফাইলে ডিপেন্ডেন্সি যোগ করতে হবে।
dependencies {
implementation 'org.apache.httpcomponents:httpclient:4.5.13' // সর্বশেষ ভার্সন চেক করুন
}
এখানে:
আপনার build.gradle ফাইলে এই ডিপেন্ডেন্সি যোগ করার পর, Gradle স্বয়ংক্রিয়ভাবে লাইব্রেরিটি ডাউনলোড এবং আপনার প্রোজেক্টে যোগ করবে।
যেহেতু Apache HTTP Client লাইব্রেরির বিভিন্ন ভার্সন রয়েছে, তাই সঠিক সংস্করণ নির্বাচন করা গুরুত্বপূর্ণ। এখানে কিছু জনপ্রিয় সংস্করণের উদাহরণ দেওয়া হলো:
সর্বশেষ ভার্সন চেক করতে Apache HttpClient Download Page এ যান।
এখন আপনি যদি Apache HTTP Client লাইব্রেরি সফলভাবে আপনার প্রোজেক্টে অন্তর্ভুক্ত করেন, তাহলে নিচে একটি সাধারণ GET রিকোয়েস্ট পাঠানোর উদাহরণ দেওয়া হলো:
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class HttpClientExample {
public static void main(String[] args) {
// Create a CloseableHttpClient instance
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// Create a GET request
HttpGet request = new HttpGet("http://www.example.com");
// Execute the request and get the response
try (CloseableHttpResponse response = httpClient.execute(request)) {
// Get the response entity
String result = EntityUtils.toString(response.getEntity());
// Print the response content
System.out.println("Response Content: " + result);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
Apache HTTP Client এর official documentation থেকে আপনি এই লাইব্রেরির সব ফিচার এবং কনফিগারেশন সম্পর্কে বিস্তারিত জানতে পারবেন। এখানে সমস্ত HTTP মেথড, SSL কনফিগারেশন, সেশন ম্যানেজমেন্ট, টাইমআউট সেটিংস, এবং আরও অনেক কিছু সম্পর্কে বিস্তারিত রয়েছে। আপনি Apache HttpClient এর official documentation এ গিয়ে সম্পূর্ণ গাইডলাইন পেতে পারেন।
Apache HTTP Client লাইব্রেরি ব্যবহারের জন্য, আপনি Maven বা Gradle এর মাধ্যমে সহজেই ডিপেন্ডেন্সি যোগ করতে পারেন। Maven এবং Gradle এর জন্য নির্দিষ্ট ডিপেন্ডেন্সি কোড উপরের উদাহরণে দেওয়া হয়েছে। একবার লাইব্রেরি অন্তর্ভুক্ত হয়ে গেলে, আপনি HTTP রিকোয়েস্ট যেমন GET, POST পাঠানোর মাধ্যমে সার্ভারের সাথে সহজে যোগাযোগ করতে পারবেন। Apache HTTP Client একটি শক্তিশালী HTTP ক্লায়েন্ট লাইব্রেরি, যা Java এ HTTP সম্পর্কিত কাজগুলো সহজ এবং কার্যকরী করে তোলে।
Apache HTTP Client লাইব্রেরি ব্যবহার করে HTTP রিকোয়েস্ট এবং রেসপন্স প্রক্রিয়া কনফিগার করা হয়। এটি বিভিন্ন কনফিগারেশন অপশন সরবরাহ করে যেমন connection management, authentication, timeouts, proxy settings, এবং SSL configuration যা HTTP ক্লায়েন্টের পারফরম্যান্স এবং নিরাপত্তা নিয়ন্ত্রণ করতে সাহায্য করে।
এই নিবন্ধে আমরা Apache HTTP Client এর বিভিন্ন কনফিগারেশন পদ্ধতি এবং তাদের ব্যবহার নিয়ে আলোচনা করব।
Apache HTTP Client কনফিগারেশনে মূলত কয়েকটি গুরুত্বপূর্ণ এলিমেন্ট রয়েছে:
Connection Pooling এর মাধ্যমে আমরা একাধিক HTTP কানেকশনকে পুনঃব্যবহার করতে পারি, যা সার্ভারের সাথে একাধিক রিকোয়েস্টের জন্য একই কানেকশন ব্যবহার করে পারফরম্যান্স বৃদ্ধি করতে সাহায্য করে।
PoolingHttpClientConnectionManager ব্যবহারের মাধ্যমে HTTP কানেকশন পুল তৈরি করা যায়।
উদাহরণ: Connection Pooling Configuration
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
public class ConnectionPoolingConfig {
public static void main(String[] args) {
// Connection manager তৈরি করা
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setMaxTotal(200); // সর্বোচ্চ কানেকশন সংখ্যা
cm.setDefaultMaxPerRoute(20); // এক রুটে সর্বোচ্চ কানেকশন সংখ্যা
// HTTP ক্লায়েন্ট কনফিগার করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(cm)
.build()) {
// HTTP request পরিচালনা
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
Connection timeout সেট করার মাধ্যমে, যদি কোনো কানেকশন নির্দিষ্ট সময়ে সার্ভারের সাথে যুক্ত না হতে পারে, তাহলে একটি ত্রুটি দেখা যাবে।
উদাহরণ: Connection Timeout Configuration
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.client.config.RequestConfig;
import java.net.URI;
import java.net.http.HttpRequest;
public class TimeoutConfig {
public static void main(String[] args) {
// Timeouts কনফিগার করা
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // Connection timeout 5 seconds
.setConnectionRequestTimeout(5000) // Request timeout 5 seconds
.build();
// HTTP ক্লায়েন্ট কনফিগার করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build()) {
// HTTP request পরিচালনা
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
Basic Authentication বা Digest Authentication ব্যবহারের মাধ্যমে HTTP ক্লায়েন্টের সাথে সার্ভারের ইউজারনেম এবং পাসওয়ার্ড যাচাই করা হয়।
HttpClients দিয়ে Basic Authentication কনফিগার করা যেতে পারে। এ ক্ষেত্রে ইউজারনেম এবং পাসওয়ার্ড HTTP হেডারে পাঠানো হয়।
উদাহরণ: Basic Authentication Configuration
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.client.methods.HttpGet;
public class BasicAuthConfig {
public static void main(String[] args) {
// Basic Authentication header তৈরি করা
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope("example.com", 80),
new UsernamePasswordCredentials("user", "password"));
// HTTP ক্লায়েন্ট কনফিগার করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build()) {
// HTTP GET request তৈরি
HttpGet request = new HttpGet("https://example.com");
httpClient.execute(request);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
Digest Authentication কনফিগারেশন Basic Authentication এর তুলনায় নিরাপদ এবং সার্ভার সাইডের জন্য আরও উন্নত।
উদাহরণ: Digest Authentication Configuration
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.auth.DigestScheme;
import org.apache.http.client.methods.HttpGet;
public class DigestAuthConfig {
public static void main(String[] args) {
// Digest Authentication header তৈরি করা
DigestScheme digestScheme = new DigestScheme();
digestScheme.setCredentials(new UsernamePasswordCredentials("user", "password"));
// HTTP ক্লায়েন্ট কনফিগার করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.addInterceptorFirst(new DigestAuthInterceptor(digestScheme))
.build()) {
// HTTP GET request তৈরি
HttpGet request = new HttpGet("https://example.com");
httpClient.execute(request);
} catch (Exception e) {
e.printStackTrace();
}
}
}
HTTP ক্লায়েন্টে প্রক্সি কনফিগার করার মাধ্যমে আপনি সার্ভারের সাথে যোগাযোগের জন্য একটি প্রক্সি ব্যবহার করতে পারেন।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
public class ProxyConfigExample {
public static void main(String[] args) {
HttpHost proxy = new HttpHost("proxy.example.com", 8080);
RequestConfig config = RequestConfig.custom()
.setProxy(proxy)
.build();
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(config)
.build()) {
// HTTP GET request তৈরি
HttpGet request = new HttpGet("https://example.com");
httpClient.execute(request);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
HTTPS (SSL/TLS) নিরাপদ কানেকশন ব্যবহারের জন্য SSLContext কনফিগার করা হয়।
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.ssl.SSLContextBuilder;
import javax.net.ssl.SSLContext;
public class SSLConfigExample {
public static void main(String[] args) {
try {
SSLContext sslContext = SSLContextBuilder.create()
.loadTrustMaterial(new File("my_trust_store.jks"), "password".toCharArray())
.build();
try (CloseableHttpClient httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.build()) {
// HTTPS GET request তৈরি
HttpGet request = new HttpGet("https://secure.example.com");
httpClient.execute(request);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
Apache HTTP Client এর কনফিগারেশন টুলসগুলি আপনাকে বিভিন্ন ধরনের HTTP রিকোয়েস্ট পরিচালনা করতে সাহায্য করবে, এবং নিরাপদ ও কার্যকরী যোগাযোগ স্থাপন করবে।
Apache HTTP Client লাইব্রেরি ব্যবহার করে HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডলিং করার জন্য একটি নির্ভরযোগ্য এবং শক্তিশালী সমাধান। IDE (Integrated Development Environment) যেমন Eclipse এবং IntelliJ IDEA-তে Apache HTTP Client লাইব্রেরি সেটআপ করা খুবই সহজ। নিচে Eclipse এবং IntelliJ তে সেটআপ করার ধাপগুলি বিস্তারিতভাবে দেওয়া হয়েছে।
Eclipse এ Apache HTTP Client ব্যবহারের জন্য আপনি Maven ব্যবহার করতে পারেন। যদি আপনার প্রজেক্টে Maven সাপোর্ট না থাকে, তবে প্রথমে Maven সাপোর্ট যুক্ত করতে হবে।
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version> <!-- সর্বশেষ সংস্করণ, আপনি এটিকে সর্বশেষ সংস্করণে আপডেট করতে পারেন -->
</dependency>
</dependencies>
Right-click on project -> Maven -> Update Project
নির্বাচন করুন।নিচে একটি উদাহরণ দেওয়া হল যেখানে GET রিকোয়েস্ট পাঠানো হয়েছে এবং রেসপন্স প্রিন্ট করা হয়েছে:
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import java.io.IOException;
import org.apache.http.util.EntityUtils;
public class HttpClientExample {
public static void main(String[] args) throws IOException {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts");
try (CloseableHttpResponse response = httpClient.execute(request)) {
String result = EntityUtils.toString(response.getEntity());
System.out.println(result);
}
}
}
}
IntelliJ IDEA তে Maven ব্যবহার করলে Apache HTTP Client লাইব্রেরি যুক্ত করা অনেক সহজ। আপনি ম্যানুয়ালি JAR ফাইল ডাউনলোড করতে পারেন, তবে Maven ব্যবহার করা আরও সুবিধাজনক।
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version> <!-- সর্বশেষ সংস্করণ -->
</dependency>
</dependencies>
View -> Tool Windows -> Maven
ক্লিক করুন।Reimport All Maven Projects
বাটন ক্লিক করুন, অথবা আপনার প্রজেক্টের উপর রাইট ক্লিক করে Maven -> Reimport
নির্বাচন করুন।নিচে একটি উদাহরণ দেওয়া হল যেখানে Apache HTTP Client ব্যবহার করে HTTP GET রিকোয়েস্ট পাঠানো হয়েছে এবং রেসপন্স প্রিন্ট করা হয়েছে:
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import java.io.IOException;
import org.apache.http.util.EntityUtils;
public class HttpClientExample {
public static void main(String[] args) throws IOException {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts");
try (CloseableHttpResponse response = httpClient.execute(request)) {
String result = EntityUtils.toString(response.getEntity());
System.out.println(result);
}
}
}
}
যদি আপনার প্রজেক্টে Maven সাপোর্ট না থাকে, তাহলে আপনি ম্যানুয়ালি Apache HTTP Client JAR ফাইল ডাউনলোড করে সেটআপ করতে পারেন।
Apache HTTP Client লাইব্রেরি ব্যবহার করে আপনি HTTP রিকোয়েস্ট পাঠানো এবং রেসপন্স পাওয়া সহজেই করতে পারেন। এটি Eclipse এবং IntelliJ IDEA উভয় IDE তে খুবই সহজভাবে সেটআপ করা যায়। আপনি Maven ব্যবহার করে লাইব্রেরি ইনস্টল করতে পারেন বা ম্যানুয়ালি JAR ফাইল ডাউনলোড করে সেটআপ করতে পারেন। HTTP GET, POST, PUT, DELETE রিকোয়েস্ট করতে HttpGet, HttpPost ইত্যাদি ক্লাস ব্যবহার করা হয়।
common.read_more